package com.woniu.mapper;

import com.woniu.entity.Employee;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface EmployeeMapper {

    int delete(Integer employeeId);

    int add(Employee employee);

    Employee findByEmployeeId(Integer employeeId);

    int update(Employee employee);

    List<Employee> findAll();

    int countByDeptId(Integer deptId);

    // ----------------- 以下是新增的方法 -----------------

    /**
     * 根据用户名精确查找员工 (用于添加员工时检查账号是否重复)
     */
    Employee findByUsername(String username);

    /**
     * 动态条件查询员工列表
     * @param name 员工姓名 (模糊查询)
     * @param gender 性别
     * @param deptId 部门ID
     * @param beginDate 入职起始日期
     * @param endDate 入职结束日期
     * @return 员工列表
     */
    List<Employee> findWithConditions(
            @Param("name") String name,
            @Param("gender") String gender,
            @Param("deptId") Integer deptId,
            @Param("beginDate") Date beginDate,
            @Param("endDate") Date endDate
    );
}